export const storageUtil = {
  // 新增：根据具体 key 读取单个存储项
  get(key) {
    try {
      // 1. 先判断 key 是否存在（避免直接 get 抛出异常）
      const { keys } = uni.getStorageInfoSync();
      if (!keys.includes(key)) {
        return null; // 不存在时返回 null（或默认值）
      }
      // 2. 读取并解析数据（兼容 JSON 字符串和原始值）
      const value = uni.getStorageSync(key);
      try {
        // 尝试 JSON 解析（处理对象/数组类型）
        return JSON.parse(value);
      } catch (e) {
        // 解析失败说明是原始值（字符串/数字等），直接返回
        return value;
      }
    } catch (err) {
      console.error(`get storage error for key [${key}]:`, err);
      return null;
    }
  },

  // 原有：获取前缀匹配的存储数据（保留不变）
  getByPrefix(prefix) {
    try {
      const { keys } = uni.getStorageInfoSync();
      const result = {};
      keys.forEach(key => {
        if (key.startsWith(prefix)) {
          const value = uni.getStorageSync(key);
          try {
            result[key] = JSON.parse(value);
          } catch (e) {
            result[key] = value;
          }
        }
      });
      return result;
    } catch (err) {
      console.error('getByPrefix error:', err);
      return {};
    }
  },

  // 原有：删除前缀匹配的数据（保留不变）
  removeByPrefix(prefix) {
    const { keys } = uni.getStorageInfoSync();
    keys.forEach(key => {
      if (key.startsWith(prefix)) {
        uni.removeStorageSync(key);
      }
    });
  }
};